trait ECore {	
	[open] trait Expr[t]
	  case class Num(n :Int) extends Expr[Int]
}

trait EEval requires (ECore with EEval) {
	trait Expr[t] {
		def eval :t 
	}
	
	case class Num(n :Int) extends Expr[Int]
		def eval = n
	}
}

[close] class Deployment extends ECore 
                         with EEval 
